#ifndef _EB0_DEBUG_H_
#define _EB0_DEBUG_H_

// All debug-related methods are to be stored in this file
#include <exception>
#include <string>

#define require(expression,errormsg) if (!(bool)(expression)) throw Exception(errormsg)

namespace EB0
{
namespace Debug
{
	// A class for creating exceptions
	class Exception : public std::exception
	{
	public:
		Exception(char* exc);
		~Exception();
		virtual const char* what() const throw();

	private:
		std::string mErrorMsg;
	};
} // namespace Debug
}

#endif // _EB0_DEBUG_H_